# 多维 列表/元组 的访问
l = [[1, 2], [3, 4]]
print(l[0]) # 输出: [1, 2]
print(l[0][0]) # 输出: 1
print(l[1][1]) # 输出: 4

# del 有两种用法:
# 1. 直接使用 del + 空格 + 要删除的变量
# 2. del() 函数, 但一般使用第一种, 第一种很方便

s = "123"
l = [1, 2, 3]
d = {"a": 1, "b": 2, "c": 3}
# 对于不可变类型, 比如字符串、元组, 可以删除变量, 但不可以删除里面存储的元素
del s[0]  # 报错
del s  # 成功运行

# 对于可变类型, 如列表, 字典, 可以删除变量, 也可删除里面存储的元素
del l[0]
del l
del d["a"]
del d

# 集合比较特殊, 集合虽然是可变类型, 但无法使用下标, 只能直接删除整个变量

s = "123"
l = [1, 2, 3]
d = {"a": 1, "b": 2, "c": 3}

# max(), 返回最大值
print(max(s))
print(min(s))
print(max(d))  # 字典是用 value 来比较, 然后返回的是 key. 输出: c
print(min(d))  # 输出: a

# 容器类型都支持解包操作, 常用类型举例:
# 元组解包
a, b, c = (1, 2, 3)

# 列表解包
a, b, c = [1, 2, 3]

# 元组解包常见应用: 交换数据
a = 1
b = 2

# 不用解包时需要这样交换:
# tmp = a
# a = b
# b = tmp
# print(a, b)

# 使用解包后
a, b = b, a  # b,a 相当于一个容器,分别给 a,b 赋值, 把b的值给a, a的值给b
print(a, b)
